package org.example;
import org.pojo.User;
import org.service.UserDao;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class App 
{
    public static void main( String[] args )
    {
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        try(
                //Resources这个是通过mybatis提供的
                InputStream inputStream =  Resources.getResourceAsStream("mybatis.config.xml")
        ){
            //build()是通过一个流InputStream得到的
            SqlSessionFactory sqlSessionFactory = builder.build(inputStream);
            //数据库会话就建立起来了,在这里面传一个true就可以建立连接了，在数据库里面就能看到数据了,true打开数据库的会话
            SqlSession sqlSession = sqlSessionFactory.openSession(true);
            UserDao userDao = sqlSession.getMapper(UserDao.class);//这里的是你传进去什么就返回什么，核心目标:通过sqlSession拿到映射的UserDao接口的实现对象
            //通过mybatis帮我们实现的UserDao查询数据
            List<User> userList = userDao.queryAll();
            System.out.println(userList);
            //实现插入功能
//            User user1 = new User();
//            user1.setName("李露");
//            user1.setSex(0);
//            user1.setAddress("六盘水");
//            user1.setPhone("18485798332");
//            int result = userDao.insert(user1);
//            System.out.println(result);
            //     实现的是修改
//            User user = new User();
//            user.setId(1);
//            user.setName("李露是猪");
//            user.setPhone("250");
//            user.setAddress("猪圈");
//            user.setSex(1);
 //           int r = userDao.update(user);
            //删除功能
         List<User> users = userDao.queryAll();
         for (User user:userList){
             if (user.getId()==5){
                 userDao.delete(user);
             }
         }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
